1. Technical Field
The present disclosure relates to energy profilers, and more particularly, to devices and methods for profiling power consumption of executed processor code in real-time so as to facilitate adjustments of power management strategies for any given application.
2. Description of the Related Art
As consumers become increasingly more environment-conscious, there are increased efforts in the field of electronics and computing to reduce power consumption, minimize production costs, decrease product size and optimize overall efficiency. Additionally, as the number of portable devices and electronics flourishes, the need for longer lasting battery-driven applications also rises. Accordingly, there are also increased efforts to optimize the energy density of battery cells and/or to minimize the power consumed by a particular battery-driven device. However, as developments in the field of batteries saturate, the focus turns to more energy efficient and longer lasting battery-driven applications. While hardware improvements may improve upon the overall efficiency of a device, improving the manner in which software or an application is executed, providing better detection of architecture flaws, and enabling a developer to find the optimum software architecture may provide further means for maximizing battery life.
Integrated circuits may be based upon and centered on a processor, controller, or a central processing unit (CPU), which is used to execute and perform an application, or a sequence of codes or functions that are preprogrammed into the processor by developers. Depending on the code or function that is executed, the power consumed by the processor may vary significantly. Furthermore, the applications or processes being performed on the processor may be configured according to different strategies or performance aims, all of which may be defined by a developer. For instance, the processor may be configured to operate with speed and performance as its first priority. Alternatively, a processor may be configured to operate on minimal power as its first priority.
In order to minimize the overall power consumed by a processor while executing such code, a developer must first be able to trace the code that is being executed, and determine the amount of power that is consumed by the code being executed. Only then can the developer begin managing and optimizing power consumption characteristics of the application to be executed. Automated code analysis tools exist to aid developers in analyzing the power consumption characteristics of an application. Specifically, such tools may provide information about a processor, the code being executed on the processor and power usage information thereof. Other such tools may actually assist the developer in generating optimized code.
Although limited means for power profiling currently exist, they have their drawbacks. For instance, many of the currently existing tools which help profile power consumption characteristics of applications require developers to purchase additional equipment and/or analysis tools, which can be costly and time consuming. Furthermore, currently existing energy profile tools are quite complex and cannot be easily integrated into the particular device under development or review. Existing systems further fail to present live or real-time power consumption information, which introduces additional complications to developers.
Therefore, there is a need for an improved energy profiling device and method that can improve upon all of the drawbacks set forth above, and still, provide facilitated techniques for profiling power of any given application. Specifically, there is a need for an energy profiler that can be included within an evaluation board to reduce costs, operate independently of a central processor, provide a more simplified interface with a processor, and provide real-time power consumption information.